mediastream: Insist streams are prepared when they start playing
authorBenjamin Otte <otte@redhat.com>
Mon, 29 Mar 2021 13:02:22 +0000 (15:02 +0200)
committerBenjamin Otte <otte@redhat.com>
Mon, 29 Mar 2021 15:08:34 +0000 (17:08 +0200)
Applications expect that behavior, so don't let implementations get away
without preparing the stream.

gtk/gtkmediastream.c

index 8635b6bb4cbe2fa35e56f69c93674fbdfe9adfd7..1b3d1c111566eb291431f1069eb19f85ed40e612 100644 (file)
@@ -1263,6 +1263,8 @@ gtk_media_stream_error_valist (GtkMediaStream *self,
  *
  * It is up to implementations to call this at the frequency
  * they deem appropriate.
+ *
+ * The media stream must be prepared when this function is called.
  */
 void
 gtk_media_stream_update (GtkMediaStream *self,
@@ -1271,6 +1273,7 @@ gtk_media_stream_update (GtkMediaStream *self,
   GtkMediaStreamPrivate *priv = gtk_media_stream_get_instance_private (self);
 
   g_return_if_fail (GTK_IS_MEDIA_STREAM (self));
+  g_return_if_fail (gtk_media_stream_is_prepared (self));
 
   g_object_freeze_notify (G_OBJECT (self));
 
@@ -1301,6 +1304,8 @@ gtk_media_stream_update (GtkMediaStream *self,
  *
  * This is a hint only, calls to GtkMediaStream.play()
  * may still happen.
+ *
+ * The media stream must be prepared when this function is called.
  */
 void
 gtk_media_stream_ended (GtkMediaStream *self)
@@ -1308,6 +1313,7 @@ gtk_media_stream_ended (GtkMediaStream *self)
   GtkMediaStreamPrivate *priv = gtk_media_stream_get_instance_private (self);
 
   g_return_if_fail (GTK_IS_MEDIA_STREAM (self));
+  g_return_if_fail (gtk_media_stream_is_prepared (self));
   g_return_if_fail (!gtk_media_stream_get_ended (self));
 
   g_object_freeze_notify (G_OBJECT (self));